昨天我們在 Day.5 建立了「世界線守則」──任何程式碼只要沒有通過測試、lint、格式化,就不能通過 CI 的世界線檢查
但如果開發者可以隨時直接改 master(main)分支,那這些檢查就沒有意義了
因此,今天我們要引入一個新的制度:世界線審判庭。
這個制度就是 Pull Request Flow + Branch Protection
如果你直接在 master(main)改程式碼 → 那是 直接更動世界線
這樣一來,沒人能保證世界還是穩定的,CI 也沒機會擋下來
所以我們要建立一條規則:
「任何世界線改動,必須透過審判庭審核(PR)」
1.建立分支
git checkout -b feature/mayuri-happy
在這條分支上,我們可以隨便改:
# tests/test_worldline.py
mayuri_alive = True
2.推送到 GitHub
git push LinkStart feature/mayuri-happy
3.建立Pull Request (PR)
到 GitHub → 點 Compare & Pull Request
填入 PR 標題(例如「讓真由理繼續活著」)
提交 PR
CI 開始審查世界線
PR 一送出,GitHub Actions 會自動跑 CI
如果測試失敗(mayuri_alive=False),就會顯示紅燈 → 無法 merge
確認沒問題就能點 Merge pull request寫好commit message和描述就能確認merge了
守門人就是管理世界秩序的法律,禁止直接破壞主要世界
在 GitHub Repo → Settings → Branches → Add rule
保護主世界,在Branch name pattern輸入master
我們把這幾個常用的勾起來
1.Require a pull request before merging
並設定至少 1 Approve
2.Require status checks to pass before merging
然後Require branches to be up to date before merging也勾起來,讓專案保持最新
Status checks選擇build
這樣一來,任何人想要修改世界線 → 都必須先被 CI + 審核人通過